package com.cloudkinto.service.analysis;

import com.cloudkinto.common.web.PageResult;
import com.cloudkinto.extentity.orderinput.AccumulateOrderCount;
import com.cloudkinto.extentity.orderinput.AnalysisOrderCountDto;
import com.cloudkinto.extentity.output.OrderOutputSendCensusDto;
import com.cloudkinto.service.analysis.vo.AnalysisReq;
import com.cloudkinto.service.analysis.vo.CustomerOrderReq;
import com.cloudkinto.service.analysis.vo.MemberPageFeeRes;
import com.cloudkinto.service.analysis.vo.StockAgeReq;

import java.util.List;
import java.util.Map;

/**
 * @author zhujiale
 * @description
 * @date 2022/11/30
 */
public interface AnalysisService {
    Object init();

    Object customerAnalysis();

    Object storageSituation(AnalysisReq req);

    Object stockAgeAnalysis(StockAgeReq req);

    Object orderAnalysis(AnalysisReq req);

    PageResult customerOrderAnalysis(CustomerOrderReq req);

    Object storageRecordsAnalysis(AnalysisReq req);

    Object customerRecordsAnalysis(AnalysisReq req);

    List<OrderOutputSendCensusDto> censusSendCount(String startDate, String endDate, Long companyId);

    /**************************************会员首页********************************/

    List<AnalysisOrderCountDto> getToDealMsg(Long storageId, Long userId);

    List<AnalysisOrderCountDto> sortHeadLine(List<AnalysisOrderCountDto> list, Long userId);

    Map<String, Object> accumulateOrderCount(Long storageId);

    List<AccumulateOrderCount> orderCountAnalysis(Long storageId, String type, String beginTime, String endTime);

    MemberPageFeeRes getFee(Long storageId, String beginTime, String endTime);
}
